#include <stdio.h>

/*
if
格式1
    if(条件表达式)
    {
        语句块
    }

    当条件表达式内的值 为非0 时则执行 语句块
    当条件表达式内的值 为0 时则不执行 语句块

格式2
    if(条件表达式)
    {
        语句块1
    }
    else
    {
        语句块
    }
    当条件表达式内的值 为非0 时则执行 语句块1
    当条件表达式内的值 为0 时则执行 语句块2
格式三
    if(条件表达式1)
    {
        语句块1
    }
    else if(条件表达式2)
    {
        语句块2
    }
    else if(条件表达式n)
    {
        语句块n
    }
    else
    {
        语句块3
    }
    当条件表达式1 内的值 为非0 时则执行 语句块1
    当第一个条件不满足 并且 第二个条件满足时 则执行 语句块2
    当 第n个前面的条件都不满足 只有 第n个条件满足则执行 语句块n

    else是 当前面所有条件都不满足的时候 则执行else


    当多个if一起的时候 可以回出现下面的清空
    if
    else if
    if
    else
    在上面这种情况下， 最好在else if  和 if 中间增加一个注释
    如下
    if
    else if
    // 新的if
    if
    else

关于 if 嵌套
    格式
    if()
    {
        if()
        {
        }
    }
    执行流程是 当外面的if 满足条件的时候 才会进入到内部的if 进行执行
    1、格式问题 没有 tab键
        在vscode中有一个工具 右键 -> 格式化文档 -> c/c++
    2、超多层 if 嵌套
        不允许
            不管从观感上 还是后期使用上 都没有优点
        解决方案 增加一个flag 值


*/
int main(int argc, char const *argv[])
{
    int num = 50;
    // ================ if 常用格式 ================
    printf("请数你猜的数字:");
    scanf("%d", &num);
    if (50 == num)
    {
        printf("磊哥最帅_1\n");
    }
    else if (52 == num)
    {
        printf("磊哥最帅_2\n");
    }
    // 新if
    if (52 == num)
    {
        printf("磊哥最帅_3\n");
    }
    else
    {
        printf("输入错误\n");
    }
    // ================ if 嵌套问题 ================

    // 层次不分明
    int flag = 1;
    if (50 > num)
    {
        if (30 > num)
        {
            if (20 > num)
            {
                flag = -99;
            }
        }
    }

    if (19 > num && -99 == flag)
    {
        if (18 > num)
        {
            printf("华清远见\n");
        }
    }
    return 0;
}
